package com.hunzi.service.impl;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.hunzi.domain.Item;
import com.hunzi.mapper.ItemMapper;
import com.hunzi.service.ItemService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;
@Service
@Transactional
public class ItemServiceImpl implements ItemService {

    @Autowired(required = false)
    private ItemMapper itemMapper ;

    @Override
    public int deleteByPrimaryKey(Integer id) {
        return 0;
    }

    @Override
    public int insert(Item record) {
        return 0;
    }

    //根据商品id查询商品
    @Override
    public Item selectByPrimaryKey(Integer id) {
        return itemMapper.selectByPrimaryKey ( id );
    }

    @Override
    public List<Item> selectAll() {
        return null;
    }

    @Override
    public int updateByPrimaryKey(Item record) {
        return 0;
    }

    /*6.根据iflag查询优惠或热门商品*/
    @Override
    public List<Item> selectByIflag(int iflag) {
        List<Item> items = itemMapper.selectByIflag ( iflag );
        return items;
    }

    //7.根据商品分类id，分页查询商品信息(由于需要采用分页，Mapper层只写关于数据库层的数据的方法， 而Service层才写关于复杂的业务逻辑的方法)
    /**
     * @param cid 商品分类的id（mapper层数据）
     * @param pageNum 第几页
     * @param pageSize 每页的数量
     * @return 返回分页信息对象
     */
    @Override
    public PageInfo<Item> selectPageByCid(int cid, int pageNum, int pageSize) {
         //1.开启分页
        PageHelper.startPage ( pageNum , pageSize );
        //2.根据分类id查询商品
        List<Item> items = itemMapper.selectAllByCid ( cid );
        //3.根据 该集合创建分页信息对象。
        PageInfo<Item> pageInfo = new PageInfo<> ( items );

        //返回分类信息对象
        return pageInfo;
    }

    @Override
    public List<Item> selectLikeName(String name) {
        return itemMapper.selectLikeName ( name );
    }
}
